Today, live and on-demand streaming multimedia objects are generally delivered over the Internet and other data networks via unicast connections. This architecture has many shortcomings, both from the content provider's point of view and the user or recipient's point of view. Thus, the content provider suffers a server load that increases linearly with the number of receivers. Users typically endure high start-up latency and unpredictable playback quality due to network congestion. In addition from an Internet Service Provider's (ISP's) point of view, streaming multimedia under such a unicast architecture poses serious network congestion problems.
One way to partially address concerns of content providers and ISPs is to make use of IP multicast. By batching multiple requests into one multicast session, both server load and network load can be significantly reduced. Unfortunately, this solution does not address the receiver's concerns. This is a direct consequence of a fundamental problem with multicast: In multicast, receivers are assumed to be homogeneous and synchronous. In reality, however, receivers are generally heterogeneous and asynchronous.